<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // 如果某一行代码出错了，那么后续代码就不再执行了

    // Promise的catch方法中return的结果，下一个then依然可以得到

    function queryData () {
      return new Promise((resolve, reject) => {
        setTimeout( () => {
          try {
            const arr = null
            arr.push('hello')
            resolve(100)
          } catch {
            reject('出错了')
          }
        }, 1000)
      })
    }

    // queryData().then(ret => {
    //   console.log(ret)
    // }).catch(err => {
    //   console.log(err)
    //   // 这里return的值，下一个then可以正常获取
    //   // return 123
    //   // return Promise.resolve(123)
    //   // return new Promise((resolve, reject) => {
    //   //   resolve(111)
    //   // })
    //   return err
    // }).then((ret) => {
    //   console.log('hello' + ret)
    // })

    async function foo () {
      queryData().catch(err => err).then(err => {
        console.log(err)
      })
      const ret = await queryData().catch(err => err)
      console.log(ret)
    }
    foo()
  </script>
</body>
</html>